Файл: Logo.txt

Дата: 10.04.2014

1: * Реализация некоторых команд ЛОГО
2: * Программа КОНЦЕПТ, 17.09.2010, www.gendoc.ru 
3: * За основу взято: http://fio.wl.dvgu.ru/images/Vipusk22/Lopatnuk/Logo/Lessons/raznoe.htm
4:
5: *********** Внутренние переменные ЛОГО ***********
6: присвоить _УГОЛ_ 0                        // Угол направления черепашки в градусах
7: присвоить _УГОЛ_РАДИАНЫ_ 0                // Угол направления черепашки в радианах
8: присвоить _ЦВЕТ_ 10                       // Цвет следа черепашки
9: присвоить _Х_ 100 _У_ 100                 // Текущие координаты черепашки
10: присвоить _СМЕЩЕНИЕ_Х_ 20 _СМЕЩЕНИЕ_У_ 200 // Смещение осей координат
11: присвоить _РИСОВАНИЕ_ 1                   // Режим рисования включен
12: присвоить _ПИ_ 3,141592653589             // Число "Пи"
13:
14: *********** Вспомогательная функция ***********
15:
16: функция рисовать_линию х1 у1 х2 у2
17:   увеличить х1 [_СМЕЩЕНИЕ_Х_]
18:   увеличить х2 [_СМЕЩЕНИЕ_Х_]
19:   вычислить - у1 [_СМЕЩЕНИЕ_У_] [у1]
20:   вычислить - у2 [_СМЕЩЕНИЕ_У_] [у2]
21:   рисовать линия [х1] [у1] [х2] [у2]
22: возврат  
23:
24: *********** Реализаця "черепашьих" команд ЛОГО ***********
25:
26: функция вперед число
27:   вычислить округлить _Х2_ (вычислить + $результат [_Х_] (вычислить * $результат [число] (вычислить косинус $результат [_УГОЛ_РАДИАНЫ_] ) ) ) 0
28:   вычислить округлить _У2_ (вычислить + $результат [_У_] (вычислить * $результат [число] (вычислить синус   $результат [_УГОЛ_РАДИАНЫ_] ) ) ) 0
29:   если [_РИСОВАНИЕ_]
30:     рисовать_линию [_Х_] [_У_] [_Х2_] [_У2_]
31:   конец  
32:   присвоить _Х_ [_Х2_] _У_ [_У2_]
33: возврат
34:
35: функция назад число
36:   вычислить округлить _Х2_ (вычислить - $результат [_Х_] (вычислить * $результат [число] (вычислить косинус $результат [_УГОЛ_РАДИАНЫ_] ) ) ) 0
37:   вычислить округлить _У2_ (вычислить - $результат [_У_] (вычислить * $результат [число] (вычислить синус   $результат [_УГОЛ_РАДИАНЫ_] ) ) ) 0
38:   если [_РИСОВАНИЕ_]
39:     рисовать_линию [_Х_] [_У_] [_Х2_] [_У2_]
40:   конец
41:   присвоить _Х_ [_Х2_] _У_ [_У2_]
42: возврат
43:
44: функция влево число
45:   увеличить _УГОЛ_ [число]
46:   вычислить остаток _УГОЛ_ [_УГОЛ_] 360
47:   вычислить * _УГОЛ_РАДИАНЫ_ (вычислить / $результат [_УГОЛ_] 180 ) [_ПИ_]  
48: возврат
49:
50: функция вправо число
51:   увеличить _УГОЛ_ "-[число]"
52:   вычислить остаток _УГОЛ_ [_УГОЛ_] 360
53:   вычислить * _УГОЛ_РАДИАНЫ_ (вычислить / $результат [_УГОЛ_] 180 ) [_ПИ_]  
54: возврат
55:
56: функция снова_рисовать
57:   присвоить _РИСОВАНИЕ_ 1
58: возврат
59:
60: функция не_рисовать
61:   присвоить _РИСОВАНИЕ_ 0
62: возврат
63:
64: *********** Примеры фигур с использованием "черепашьих" команд ЛОГО **********
65:
66: функция Квадрат
67:   вперед 20
68:   вправо 90  
69:   вперед 20
70:   вправо 90
71:   вперед 20
72:   вправо 90
73:   вперед 20
74:   вправо 90
75: возврат
76:
77: функция Три_квадрата
78:   для 1;2;3
79:     для 1;2;3;4
80:       вперед 20
81:       влево 90
82:     следующий
83:     вправо 90
84:     не_рисовать
85:     вперед 30
86:     влево 90
87:     снова_рисовать
88:   следующий
89: возврат
90:
91: функция Салфетка
92:   для 1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29;30;31;32;33;34;35;36
93:     для 1;2;3;4
94:       вперед 50
95:       вправо 90
96:     следующий
97:     вправо 10
98:   следующий
99: возврат
100:
101: функция Цветок
102:   для 1;2;3;4;5;6;7;8
103:     влево 45
104:     вперед 20
105:     вправо 45
106:     вперед 50
107:     вправо 45
108:     вперед 20
109:     вправо 90
110:     вперед 20
111:     вправо 45
112:     вперед 50
113:     вправо 45
114:     вперед 20
115:   следующий
116: возврат
117:
118: *********** Начало программы **********
119:
120: ввести меню1 фигура 'Что нарисовать?' Квадрат;Три_квадрата;Салфетка;Цветок  
121: если [фигура]
122:   выполнить [фигура]
123: конец
124: